import router from "@/router";
import Nprogress from "nprogress";
import "nprogress/nprogress.css";
import store from "@/store";
Nprogress.configure({ showSpinner: false });
// nprogress :进度条插件
// 1、下载插件npm i nprogress -f
// 2、导入import Nprogress from 'nprogress'    import 'nprogress/nprogress.css'
// 3、使用  开始  Nprogress.start()
// 前置守卫:所有路由的跳转都要通过它
//白名单页面
const whileList = ["/login", "/404"];
router.beforeEach(async (to, from, next) => {
  Nprogress.start();
  // to:要去的页面
  // from:从哪个页面过来
  // next():代表正常通行
  // next('path地址')让它跳转到其他页面
  // 需求：没登录，不能进首页，登录了，不能进登录页
  /*如果
        有token
            判断要去的页面是不是登录页
              是
                 去首页
              不是
                 正常放行
        没token
            去的页面不需要登录（404，login）
                正常放行
            去的页面是需要登陆的页面
                 去登录页   */
  if (store.state.user.token) {
    if (to.path.toLowerCase() === "/login") {
      next("/");
    } else {
      if (!store.state.user.userInfo.userId) {
        await store.dispatch("user/getUserInfo");
        next(to);
      } else {
        next();
      }
    }
  } else {
    if (whileList.includes(to.path.toLowerCase())) {
      next();
    } else {
      next("/login");
    }
  }
});
// 后置守卫
router.afterEach((to, from) => {
  // to:当前所处页面的路由
  // from:从哪个页面过来的
  document.title = to.meta.title;
  Nprogress.done();
});
